package com.rpframework.module.common.service;


import com.rpframework.module.common.bottom.entity.enums.SourceType;
import com.rpframework.module.common.domain.UserLogin;

import java.util.List;

/**
 * 用用户登录令牌<br>
 * 授权
 *
 * @author 刘兴
 */
public interface UserTokenService {
    /**
     * 用户登录添加令牌
     *
     * @param entity 用户主键。来源
     * @return 添加成功返回令牌
     */
    String addToken(UserLogin entity);

    /**
     * 根据令牌来源检测是否已经登陆过
     *
     * @param token 令牌
     * @return 用户主键
     */
    String checkToken(String token, SourceType source);

    /**
     * 登陆的所有已登录设备
     *
     * @param userId 用户主键
     * @return 已登录设备
     */
    List<UserLogin> allLoginDevice(String userId);

    /**
     * 删除令牌
     *
     * @param token 令牌
     * @return 是否成功
     */
    boolean removeToken(UserLogin token);
}